package com.taotao.controller;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.taotao.pojo.TbItemCat;
import com.taotao.service.ItemCatService;

/**
 * 商品类别controller
 * <p>Title: PageController</p>
 * <p>Description: </p>
 * <p>Company: www.itcast.com</p> 
 * @author	入云龙
 * @date	2015年9月2日上午11:11:41
 * @version 1.0
 */
@Controller
@RequestMapping("/item/cat")
public class ItemCatController {

	@Autowired
	private ItemCatService itemCatService;
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	@RequestMapping("/list")
	@ResponseBody
	//如果id为null是使用默认值，也就是parentid为0的分类列表
	public List categoryList(@RequestParam(value="id",defaultValue="0")Long parentId){
		
		List catList = new ArrayList();
		//查询数据库
		List<TbItemCat> list = itemCatService.getItemCatList(parentId);
		/***
		 * 由于不是pojo的所有属性都用得到,所有用map把要用的传过去,
		 * 对于属性名和easyui要求的名字不一样用map的键值对也可以解决
		 */
		for (TbItemCat tbItemCat : list) {
			Map node = new HashMap<>();
			node.put("id", tbItemCat.getId());
			node.put("text", tbItemCat.getName());
			/**
			 * 如果是父节点的话就设置成关闭状态，如果是叶子节点就是open状态
			 * 	如果是父节点但是设为open,默认open,由于我们只查出一层的节点,没有查出子节点,
			 * 	所以第一次查出的所有父节点都会以叶子节点的形式展示,不再显示为文件夹可点击展示
			 *  而叶子节点以closed显示会变成目录,但没有下一级了
			 *  
			 *  只要是closed的就可以点击,点击会自动再次请求树的方法
			 */
			node.put("state", tbItemCat.getIsParent()?"closed":"open");
			catList.add(node);
		}
		return catList;
		
	}
	
}
